0 Prolog
↳1 PrologToDTProblemTransformerProof (⇒, 189 ms)
↳2 TRIPLES
↳3 TriplesToPiDPProof (⇒, 181 ms)
↳4 PiDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 PiDP
↳8 PiDPToQDPProof (⇒, 5 ms)
↳9 QDP
↳10 QDPSizeChangeProof (⇔, 0 ms)
↳11 YES
↳12 PiDP
↳13 PiDPToQDPProof (⇒, 0 ms)
↳14 QDP
↳15 QDPSizeChangeProof (⇔, 0 ms)
↳16 YES
ACKA_IN_GGA(s(s(X1)), 0, X2) → U9_GGA(X1, X2, ackB_in_ga(X1, X3))
ACKA_IN_GGA(s(s(X1)), 0, X2) → ACKB_IN_GA(X1, X3)
ACKB_IN_GA(X1, X2) → U1_GA(X1, X2, ackC_in_ga(X1, X2))
ACKB_IN_GA(X1, X2) → ACKC_IN_GA(X1, X2)
ACKC_IN_GA(s(X1), X2) → U2_GA(X1, X2, ackB_in_ga(X1, X3))
ACKC_IN_GA(s(X1), X2) → ACKB_IN_GA(X1, X3)
ACKC_IN_GA(s(X1), X2) → U3_GA(X1, X2, ackcB_in_ga(X1, X3))
U3_GA(X1, X2, ackcB_out_ga(X1, X3)) → U4_GA(X1, X2, ackD_in_gga(X1, X3, X2))
U3_GA(X1, X2, ackcB_out_ga(X1, X3)) → ACKD_IN_GGA(X1, X3, X2)
ACKD_IN_GGA(s(X1), 0, X2) → U5_GGA(X1, X2, ackC_in_ga(X1, X2))
ACKD_IN_GGA(s(X1), 0, X2) → ACKC_IN_GA(X1, X2)
ACKD_IN_GGA(s(X1), s(X2), X3) → U6_GGA(X1, X2, X3, ackD_in_gga(s(X1), X2, X4))
ACKD_IN_GGA(s(X1), s(X2), X3) → ACKD_IN_GGA(s(X1), X2, X4)
ACKD_IN_GGA(s(X1), s(X2), X3) → U7_GGA(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U7_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U8_GGA(X1, X2, X3, ackD_in_gga(X1, X4, X3))
U7_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → ACKD_IN_GGA(X1, X4, X3)
ACKA_IN_GGA(s(s(X1)), 0, X2) → U10_GGA(X1, X2, ackcB_in_ga(X1, X3))
U10_GGA(X1, X2, ackcB_out_ga(X1, X3)) → U11_GGA(X1, X2, ackA_in_gga(X1, X3, X2))
U10_GGA(X1, X2, ackcB_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3, X2)
ACKA_IN_GGA(s(X1), s(0), X2) → U12_GGA(X1, X2, ackC_in_ga(X1, X3))
ACKA_IN_GGA(s(X1), s(0), X2) → ACKC_IN_GA(X1, X3)
ACKA_IN_GGA(s(X1), s(0), X2) → U13_GGA(X1, X2, ackcC_in_ga(X1, X3))
U13_GGA(X1, X2, ackcC_out_ga(X1, X3)) → U14_GGA(X1, X2, ackA_in_gga(X1, X3, X2))
U13_GGA(X1, X2, ackcC_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3, X2)
ACKA_IN_GGA(s(X1), s(s(X2)), X3) → U15_GGA(X1, X2, X3, ackD_in_gga(s(X1), X2, X4))
ACKA_IN_GGA(s(X1), s(s(X2)), X3) → ACKD_IN_GGA(s(X1), X2, X4)
ACKA_IN_GGA(s(X1), s(s(X2)), X3) → U16_GGA(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U16_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U17_GGA(X1, X2, X3, ackD_in_gga(X1, X4, X5))
U16_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → ACKD_IN_GGA(X1, X4, X5)
U16_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, X3, ackcD_in_gga(X1, X4, X5))
U18_GGA(X1, X2, X3, ackcD_out_gga(X1, X4, X5)) → U19_GGA(X1, X2, X3, ackA_in_gga(X1, X5, X3))
U18_GGA(X1, X2, X3, ackcD_out_gga(X1, X4, X5)) → ACKA_IN_GGA(X1, X5, X3)
ackcB_in_ga(X1, X2) → U28_ga(X1, X2, ackcC_in_ga(X1, X2))
ackcC_in_ga(0, s(s(0))) → ackcC_out_ga(0, s(s(0)))
ackcC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackcB_in_ga(X1, X3))
U29_ga(X1, X2, ackcB_out_ga(X1, X3)) → U30_ga(X1, X2, ackcD_in_gga(X1, X3, X2))
ackcD_in_gga(0, X1, s(X1)) → ackcD_out_gga(0, X1, s(X1))
ackcD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackcC_in_ga(X1, X2))
U31_gga(X1, X2, ackcC_out_ga(X1, X2)) → ackcD_out_gga(s(X1), 0, X2)
ackcD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackcD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackcD_out_gga(X1, X4, X3)) → ackcD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackcD_out_gga(X1, X3, X2)) → ackcC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackcC_out_ga(X1, X2)) → ackcB_out_ga(X1, X2)
Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES
ACKA_IN_GGA(s(s(X1)), 0, X2) → U9_GGA(X1, X2, ackB_in_ga(X1, X3))
ACKA_IN_GGA(s(s(X1)), 0, X2) → ACKB_IN_GA(X1, X3)
ACKB_IN_GA(X1, X2) → U1_GA(X1, X2, ackC_in_ga(X1, X2))
ACKB_IN_GA(X1, X2) → ACKC_IN_GA(X1, X2)
ACKC_IN_GA(s(X1), X2) → U2_GA(X1, X2, ackB_in_ga(X1, X3))
ACKC_IN_GA(s(X1), X2) → ACKB_IN_GA(X1, X3)
ACKC_IN_GA(s(X1), X2) → U3_GA(X1, X2, ackcB_in_ga(X1, X3))
U3_GA(X1, X2, ackcB_out_ga(X1, X3)) → U4_GA(X1, X2, ackD_in_gga(X1, X3, X2))
U3_GA(X1, X2, ackcB_out_ga(X1, X3)) → ACKD_IN_GGA(X1, X3, X2)
ACKD_IN_GGA(s(X1), 0, X2) → U5_GGA(X1, X2, ackC_in_ga(X1, X2))
ACKD_IN_GGA(s(X1), 0, X2) → ACKC_IN_GA(X1, X2)
ACKD_IN_GGA(s(X1), s(X2), X3) → U6_GGA(X1, X2, X3, ackD_in_gga(s(X1), X2, X4))
ACKD_IN_GGA(s(X1), s(X2), X3) → ACKD_IN_GGA(s(X1), X2, X4)
ACKD_IN_GGA(s(X1), s(X2), X3) → U7_GGA(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U7_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U8_GGA(X1, X2, X3, ackD_in_gga(X1, X4, X3))
U7_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → ACKD_IN_GGA(X1, X4, X3)
ACKA_IN_GGA(s(s(X1)), 0, X2) → U10_GGA(X1, X2, ackcB_in_ga(X1, X3))
U10_GGA(X1, X2, ackcB_out_ga(X1, X3)) → U11_GGA(X1, X2, ackA_in_gga(X1, X3, X2))
U10_GGA(X1, X2, ackcB_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3, X2)
ACKA_IN_GGA(s(X1), s(0), X2) → U12_GGA(X1, X2, ackC_in_ga(X1, X3))
ACKA_IN_GGA(s(X1), s(0), X2) → ACKC_IN_GA(X1, X3)
ACKA_IN_GGA(s(X1), s(0), X2) → U13_GGA(X1, X2, ackcC_in_ga(X1, X3))
U13_GGA(X1, X2, ackcC_out_ga(X1, X3)) → U14_GGA(X1, X2, ackA_in_gga(X1, X3, X2))
U13_GGA(X1, X2, ackcC_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3, X2)
ACKA_IN_GGA(s(X1), s(s(X2)), X3) → U15_GGA(X1, X2, X3, ackD_in_gga(s(X1), X2, X4))
ACKA_IN_GGA(s(X1), s(s(X2)), X3) → ACKD_IN_GGA(s(X1), X2, X4)
ACKA_IN_GGA(s(X1), s(s(X2)), X3) → U16_GGA(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U16_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U17_GGA(X1, X2, X3, ackD_in_gga(X1, X4, X5))
U16_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → ACKD_IN_GGA(X1, X4, X5)
U16_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, X3, ackcD_in_gga(X1, X4, X5))
U18_GGA(X1, X2, X3, ackcD_out_gga(X1, X4, X5)) → U19_GGA(X1, X2, X3, ackA_in_gga(X1, X5, X3))
U18_GGA(X1, X2, X3, ackcD_out_gga(X1, X4, X5)) → ACKA_IN_GGA(X1, X5, X3)
ackcB_in_ga(X1, X2) → U28_ga(X1, X2, ackcC_in_ga(X1, X2))
ackcC_in_ga(0, s(s(0))) → ackcC_out_ga(0, s(s(0)))
ackcC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackcB_in_ga(X1, X3))
U29_ga(X1, X2, ackcB_out_ga(X1, X3)) → U30_ga(X1, X2, ackcD_in_gga(X1, X3, X2))
ackcD_in_gga(0, X1, s(X1)) → ackcD_out_gga(0, X1, s(X1))
ackcD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackcC_in_ga(X1, X2))
U31_gga(X1, X2, ackcC_out_ga(X1, X2)) → ackcD_out_gga(s(X1), 0, X2)
ackcD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackcD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackcD_out_gga(X1, X4, X3)) → ackcD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackcD_out_gga(X1, X3, X2)) → ackcC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackcC_out_ga(X1, X2)) → ackcB_out_ga(X1, X2)
ACKB_IN_GA(X1, X2) → ACKC_IN_GA(X1, X2)
ACKC_IN_GA(s(X1), X2) → ACKB_IN_GA(X1, X3)
ACKC_IN_GA(s(X1), X2) → U3_GA(X1, X2, ackcB_in_ga(X1, X3))
U3_GA(X1, X2, ackcB_out_ga(X1, X3)) → ACKD_IN_GGA(X1, X3, X2)
ACKD_IN_GGA(s(X1), 0, X2) → ACKC_IN_GA(X1, X2)
ACKD_IN_GGA(s(X1), s(X2), X3) → ACKD_IN_GGA(s(X1), X2, X4)
ACKD_IN_GGA(s(X1), s(X2), X3) → U7_GGA(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U7_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → ACKD_IN_GGA(X1, X4, X3)
ackcB_in_ga(X1, X2) → U28_ga(X1, X2, ackcC_in_ga(X1, X2))
ackcC_in_ga(0, s(s(0))) → ackcC_out_ga(0, s(s(0)))
ackcC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackcB_in_ga(X1, X3))
U29_ga(X1, X2, ackcB_out_ga(X1, X3)) → U30_ga(X1, X2, ackcD_in_gga(X1, X3, X2))
ackcD_in_gga(0, X1, s(X1)) → ackcD_out_gga(0, X1, s(X1))
ackcD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackcC_in_ga(X1, X2))
U31_gga(X1, X2, ackcC_out_ga(X1, X2)) → ackcD_out_gga(s(X1), 0, X2)
ackcD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackcD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackcD_out_gga(X1, X4, X3)) → ackcD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackcD_out_gga(X1, X3, X2)) → ackcC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackcC_out_ga(X1, X2)) → ackcB_out_ga(X1, X2)
ACKB_IN_GA(X1) → ACKC_IN_GA(X1)
ACKC_IN_GA(s(X1)) → ACKB_IN_GA(X1)
ACKC_IN_GA(s(X1)) → U3_GA(X1, ackcB_in_ga(X1))
U3_GA(X1, ackcB_out_ga(X1, X3)) → ACKD_IN_GGA(X1, X3)
ACKD_IN_GGA(s(X1), 0) → ACKC_IN_GA(X1)
ACKD_IN_GGA(s(X1), s(X2)) → ACKD_IN_GGA(s(X1), X2)
ACKD_IN_GGA(s(X1), s(X2)) → U7_GGA(X1, X2, ackcD_in_gga(s(X1), X2))
U7_GGA(X1, X2, ackcD_out_gga(s(X1), X2, X4)) → ACKD_IN_GGA(X1, X4)
ackcB_in_ga(X1) → U28_ga(X1, ackcC_in_ga(X1))
ackcC_in_ga(0) → ackcC_out_ga(0, s(s(0)))
ackcC_in_ga(s(X1)) → U29_ga(X1, ackcB_in_ga(X1))
U29_ga(X1, ackcB_out_ga(X1, X3)) → U30_ga(X1, ackcD_in_gga(X1, X3))
ackcD_in_gga(0, X1) → ackcD_out_gga(0, X1, s(X1))
ackcD_in_gga(s(X1), 0) → U31_gga(X1, ackcC_in_ga(X1))
U31_gga(X1, ackcC_out_ga(X1, X2)) → ackcD_out_gga(s(X1), 0, X2)
ackcD_in_gga(s(X1), s(X2)) → U32_gga(X1, X2, ackcD_in_gga(s(X1), X2))
U32_gga(X1, X2, ackcD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, ackcD_in_gga(X1, X4))
U33_gga(X1, X2, ackcD_out_gga(X1, X4, X3)) → ackcD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, ackcD_out_gga(X1, X3, X2)) → ackcC_out_ga(s(X1), X2)
U28_ga(X1, ackcC_out_ga(X1, X2)) → ackcB_out_ga(X1, X2)
ackcB_in_ga(x0)
ackcC_in_ga(x0)
U29_ga(x0, x1)
ackcD_in_gga(x0, x1)
U31_gga(x0, x1)
U32_gga(x0, x1, x2)
U33_gga(x0, x1, x2)
U30_ga(x0, x1)
U28_ga(x0, x1)
From the DPs we obtained the following set of size-change graphs:
ACKA_IN_GGA(s(s(X1)), 0, X2) → U10_GGA(X1, X2, ackcB_in_ga(X1, X3))
U10_GGA(X1, X2, ackcB_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3, X2)
ACKA_IN_GGA(s(X1), s(0), X2) → U13_GGA(X1, X2, ackcC_in_ga(X1, X3))
U13_GGA(X1, X2, ackcC_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3, X2)
ACKA_IN_GGA(s(X1), s(s(X2)), X3) → U16_GGA(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U16_GGA(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, X3, ackcD_in_gga(X1, X4, X5))
U18_GGA(X1, X2, X3, ackcD_out_gga(X1, X4, X5)) → ACKA_IN_GGA(X1, X5, X3)
ackcB_in_ga(X1, X2) → U28_ga(X1, X2, ackcC_in_ga(X1, X2))
ackcC_in_ga(0, s(s(0))) → ackcC_out_ga(0, s(s(0)))
ackcC_in_ga(s(X1), X2) → U29_ga(X1, X2, ackcB_in_ga(X1, X3))
U29_ga(X1, X2, ackcB_out_ga(X1, X3)) → U30_ga(X1, X2, ackcD_in_gga(X1, X3, X2))
ackcD_in_gga(0, X1, s(X1)) → ackcD_out_gga(0, X1, s(X1))
ackcD_in_gga(s(X1), 0, X2) → U31_gga(X1, X2, ackcC_in_ga(X1, X2))
U31_gga(X1, X2, ackcC_out_ga(X1, X2)) → ackcD_out_gga(s(X1), 0, X2)
ackcD_in_gga(s(X1), s(X2), X3) → U32_gga(X1, X2, X3, ackcD_in_gga(s(X1), X2, X4))
U32_gga(X1, X2, X3, ackcD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, X3, ackcD_in_gga(X1, X4, X3))
U33_gga(X1, X2, X3, ackcD_out_gga(X1, X4, X3)) → ackcD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, X2, ackcD_out_gga(X1, X3, X2)) → ackcC_out_ga(s(X1), X2)
U28_ga(X1, X2, ackcC_out_ga(X1, X2)) → ackcB_out_ga(X1, X2)
ACKA_IN_GGA(s(s(X1)), 0) → U10_GGA(X1, ackcB_in_ga(X1))
U10_GGA(X1, ackcB_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3)
ACKA_IN_GGA(s(X1), s(0)) → U13_GGA(X1, ackcC_in_ga(X1))
U13_GGA(X1, ackcC_out_ga(X1, X3)) → ACKA_IN_GGA(X1, X3)
ACKA_IN_GGA(s(X1), s(s(X2))) → U16_GGA(X1, X2, ackcD_in_gga(s(X1), X2))
U16_GGA(X1, X2, ackcD_out_gga(s(X1), X2, X4)) → U18_GGA(X1, X2, ackcD_in_gga(X1, X4))
U18_GGA(X1, X2, ackcD_out_gga(X1, X4, X5)) → ACKA_IN_GGA(X1, X5)
ackcB_in_ga(X1) → U28_ga(X1, ackcC_in_ga(X1))
ackcC_in_ga(0) → ackcC_out_ga(0, s(s(0)))
ackcC_in_ga(s(X1)) → U29_ga(X1, ackcB_in_ga(X1))
U29_ga(X1, ackcB_out_ga(X1, X3)) → U30_ga(X1, ackcD_in_gga(X1, X3))
ackcD_in_gga(0, X1) → ackcD_out_gga(0, X1, s(X1))
ackcD_in_gga(s(X1), 0) → U31_gga(X1, ackcC_in_ga(X1))
U31_gga(X1, ackcC_out_ga(X1, X2)) → ackcD_out_gga(s(X1), 0, X2)
ackcD_in_gga(s(X1), s(X2)) → U32_gga(X1, X2, ackcD_in_gga(s(X1), X2))
U32_gga(X1, X2, ackcD_out_gga(s(X1), X2, X4)) → U33_gga(X1, X2, ackcD_in_gga(X1, X4))
U33_gga(X1, X2, ackcD_out_gga(X1, X4, X3)) → ackcD_out_gga(s(X1), s(X2), X3)
U30_ga(X1, ackcD_out_gga(X1, X3, X2)) → ackcC_out_ga(s(X1), X2)
U28_ga(X1, ackcC_out_ga(X1, X2)) → ackcB_out_ga(X1, X2)
ackcB_in_ga(x0)
ackcC_in_ga(x0)
U29_ga(x0, x1)
ackcD_in_gga(x0, x1)
U31_gga(x0, x1)
U32_gga(x0, x1, x2)
U33_gga(x0, x1, x2)
U30_ga(x0, x1)
U28_ga(x0, x1)
From the DPs we obtained the following set of size-change graphs: